import { ref } from 'vue'

// 默认用户名
const DEFAULT_USERNAME = 'rubbishGraduateFrom-zjitc'

// 从 localStorage 读取用户名
function getStoredUsername() {
    try {
        const stored = localStorage.getItem('username')
        // 如果有保存的用户名，直接返回；否则返回默认值
        return stored || DEFAULT_USERNAME
    } catch (error) {
        console.error('读取用户名失败:', error)
        return DEFAULT_USERNAME
    }
}

// 保存用户名到 localStorage
function saveUsername(username) {
    try {
        if (username && username !== DEFAULT_USERNAME) {
            localStorage.setItem('username', username)
        } else {
            localStorage.removeItem('username')
        }
    } catch (error) {
        console.error('保存用户名失败:', error)
    }
}

// 创建全局响应式用户名状态（单例模式，确保所有组件共享同一个状态）
const username = ref(getStoredUsername())

/**
 * 用户信息 composable
 * 提供统一的用户信息管理，支持动态更新
 */
export function useUserInfo() {
    // 更新用户名
    function updateUsername(newUsername) {
        if (newUsername) {
            username.value = newUsername
            saveUsername(newUsername)
        }
    }

    // 重置为默认用户名
    function resetUsername() {
        username.value = DEFAULT_USERNAME
        localStorage.removeItem('username')
    }

    return {
        username,
        updateUsername,
        resetUsername,
    }
}

